1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.base;
18
19 import com.google.common.annotations.GwtCompatible;
20 import com.google.common.annotations.GwtIncompatible;
21
22 import junit.framework.TestCase;
23
24 import java.nio.charset.Charset;
25 import java.util.Arrays;
26
27
28
29
30
31
32 @GwtCompatible(emulated = true)
33 public class CharsetsTest extends TestCase {
34
35 @GwtIncompatible("Non-UTF-8 Charset")
36 public void testUsAscii() {
37 assertEquals(Charset.forName("US-ASCII"), Charsets.US_ASCII);
38 }
39
40 @GwtIncompatible("Non-UTF-8 Charset")
41 public void testIso88591() {
42 assertEquals(Charset.forName("ISO-8859-1"), Charsets.ISO_8859_1);
43 }
44
45 public void testUtf8() {
46 assertEquals(Charset.forName("UTF-8"), Charsets.UTF_8);
47 }
48
49 @GwtIncompatible("Non-UTF-8 Charset")
50 public void testUtf16be() {
51 assertEquals(Charset.forName("UTF-16BE"), Charsets.UTF_16BE);
52 }
53
54 @GwtIncompatible("Non-UTF-8 Charset")
55 public void testUtf16le() {
56 assertEquals(Charset.forName("UTF-16LE"), Charsets.UTF_16LE);
57 }
58
59 @GwtIncompatible("Non-UTF-8 Charset")
60 public void testUtf16() {
61 assertEquals(Charset.forName("UTF-16"), Charsets.UTF_16);
62 }
63
64 @GwtIncompatible("Non-UTF-8 Charset")
65 public void testWhyUsAsciiIsDangerous() {
66 byte[] b1 = "朝日新聞".getBytes(Charsets.US_ASCII);
67 byte[] b2 = "聞朝日新".getBytes(Charsets.US_ASCII);
68 byte[] b3 = "????".getBytes(Charsets.US_ASCII);
69 byte[] b4 = "ニュース".getBytes(Charsets.US_ASCII);
70 byte[] b5 = "スューー".getBytes(Charsets.US_ASCII);
71
72 assertTrue(Arrays.equals(b1, b2));
73 assertTrue(Arrays.equals(b2, b3));
74 assertTrue(Arrays.equals(b3, b4));
75 assertTrue(Arrays.equals(b4, b5));
76 }
77 }